home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Czech Logic, Card & Gambling Games
/
Logické hry.iso
/
hry
/
Fish Fillets
/
script
/
elevator1
/
code.lua
next >
Wrap
Text File
|
2005-07-16
|
8KB
|
246 lines
-- -----------------------------------------------------------------
-- Init
-- -----------------------------------------------------------------
local function prog_init()
initModels()
sound_playMusic("music/rybky01.ogg")
local pokus = getRestartCount()
local roompole = createArray(1)
-- -------------------------------------------------------------
local function prog_init_room()
local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
room.uvod = 0
room.lebzna = 0
room.lastura = 0
room.jizdam = random(15) + 3
room.jizdav = random(50) + 10
if pokus > 1 then
if random(100) < 30 then
room.uvod = 1
end
if random(100) < 50 then
room.lastura = 1
end
if random(100) < 60 then
room.lebzna = 1
end
if random(100) < 20 then
room.jizdam = -1
end
if random(100) < 30 then
room.jizdav = -1
end
end
room.huhuh = 0
return function()
if isReady(small) and isReady(big) and no_dialog() then
if room.uvod == 0 then
addv(random(20) + 50, "zd1-v-civil")
switch(roompole[0]){
[0] = function()
addm(random(10), "zd1-m-dolu")
end,
[1] = function()
addm(random(10), "zd1-m-tlac")
roompole[0] = roompole[0] + 1
end,
[2] = function()
if random(2) == 0 then
addm(random(10), "zd1-m-tlac")
else
addm(random(10), "zd1-m-dolu")
end
end,
}
room.uvod = 1
end
if room.lastura == 0 and look_at(small, shelka) and math.abs(ydist(small, shelka)) < 3 and random(100) < 1 then
if random(2) == 0 then
addm(0, "zd1-m-last")
else
addm(0, "zd1-m-poved")
end
if random(2) == 0 then
addv(random(10), "zd1-v-talis")
else
addv(random(3), "zd1-v-styd")
end
room.lastura = 1
elseif room.lebzna == 0 and look_at(big, llebka) and math.abs(ydist(big, llebka)) < 3 and random(100) < 1 then
addv(20, "zd1-v-lebka")
addm(random(8), "zd1-m-stejne")
room.lebzna = 1
elseif small.jede == room.jizdam then
addm(0, "zd1-m-cesta")
room.jizdam = -1
elseif big.jede == room.jizdav then
addv(0, "zd1-v-krecek")
addm(3, "zd1-m-slap")
room.jizdav = -1
elseif random(1000) < 8 then
pom1 = room.huhuh
if room.huhuh == 0 then
room.huhuh = random(3) + 1
else
room.huhuh = random(4) + 1
end
if pom1 == room.huhuh then
room.huhuh = 5
end
planDialogSet(5, "zd1-x-huhu"..room.huhuh, 101, dedek, "mluvi")
end
end
end
end
-- -------------------------------------------------------------
local function prog_init_vytah()
local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
--NOTE: double rope
game_addDecor("rope", vytah.index, stroj.index, 43, 0, 58, 27)
game_addDecor("rope", vytah.index, stroj.index, 43 + 3, 0, 58 + 3, 27)
return function()
if vytah.dir == dir_up then
if roompole[0] == 0 then
roompole[0] = 1
end
end
end
end
-- -------------------------------------------------------------
local function prog_init_stroj()
local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
return function()
if stroj.X == vytah.X - 1 then
if stroj.dir == dir_no and vytah.dir == dir_down then
pom1 = 2
elseif stroj.dir == dir_up and vytah.dir == dir_no then
pom1 = 1
elseif stroj.dir == dir_no and vytah.dir == dir_up then
pom1 = -1
elseif stroj.dir == dir_down and vytah.dir == dir_no then
pom1 = -2
else
pom1 = 0
end
stroj.afaze = stroj.afaze + pom1
if stroj.afaze > 5 then
stroj.afaze = stroj.afaze - 6
elseif stroj.afaze < 0 then
stroj.afaze = stroj.afaze + 6
end
end
stroj:updateAnim()
end
end
-- -------------------------------------------------------------
local function prog_init_hlavicka()
return function()
if hlavicka.afaze == 0 and random(100) < 2 or hlavicka.afaze ~= 0 and random(100) < 5 then
hlavicka.afaze = random(3)
end
hlavicka:updateAnim()
end
end
-- -------------------------------------------------------------
local function prog_init_dedek()
local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
dedek.mluvi = 0
return function()
if dedek.mluvi ~= 0 then
dedek.afaze = random(2) + 1
else
dedek.afaze = 0
end
dedek:updateAnim()
end
end
-- -------------------------------------------------------------
local function prog_init_small()
local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
small.jede = 0
return function()
if vytah.dir == dir_up and small.X >= vytah.X and small.X < vytah.X + 4 and small.Y > vytah.Y and small.Y < vytah.Y + 6 then
small.jede = small.jede + 1
end
end
end
-- -------------------------------------------------------------
local function prog_init_big()
local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
big.jede = 0
return function()
if vytah.dir == dir_up and big.X >= vytah.X and big.X < vytah.X + 3 and big.Y > vytah.Y and big.Y < vytah.Y + 5 then
big.jede = big.jede + 1
end
end
end
-- --------------------
local update_table = {}
local subinit
subinit = prog_init_room()
if subinit then
table.insert(update_table, subinit)
end
subinit = prog_init_vytah()
if subinit then
table.insert(update_table, subinit)
end
subinit = prog_init_stroj()
if subinit then
table.insert(update_table, subinit)
end
subinit = prog_init_hlavicka()
if subinit then
table.insert(update_table, subinit)
end
subinit = prog_init_dedek()
if subinit then
table.insert(update_table, subinit)
end
subinit = prog_init_small()
if subinit then
table.insert(update_table, subinit)
end
subinit = prog_init_big()
if subinit then
table.insert(update_table, subinit)
end
return update_table
end
local update_table = prog_init()
-- -----------------------------------------------------------------
-- Update
-- -----------------------------------------------------------------
function prog_update()
for key, subupdate in pairs(update_table) do
subupdate()
end
end